import numpy as np
import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Pie

df = pd.read_csv("HousePrice_tyHanding.csv")
# 统计房价最大值、最小值、平均值
max_price = df['PRICE'].max()
min_price = df['PRICE'].min()
avg_price = df['PRICE'].mean()
print(max_price)
print(min_price)
print(avg_price)
#print(df)
# 定义价格区间
bins = [0, 7500, 8500, 9500, 10500, 11500, np.inf]
labels = ['7500以下', '7501-8500', '8501-9500', '9501-10500', '10501-11500', '11500以上']
# 使用 cut 函数将 PRICE 列数据分段，并进行统计
df['PRICE区间'] = pd.cut(df['PRICE'], bins=bins, labels=labels, right=False)
price_counts = df.groupby('PRICE区间').size().reset_index(name='统计数量')
# 显示统计结果
#print(price_counts)
list_layer = price_counts['统计数量'].tolist()
#print(list_layer)

# 画饼图
# 创建 Pie 对象
c = Pie()
# 添加数据和设置
c.add("", list(zip(labels, list_layer)),  # 使用 zip 将标签和数量组合成元组
      radius=["30%", "75%"],  # 设置内外圆环的半径，这里示意设置
      rosetype="radius")  # 设置为基于半径的玫瑰图

# 设置全局选项和系列选项
c.set_global_opts(title_opts=opts.TitleOpts(title="房价占比"),
                  legend_opts=opts.LegendOpts(type_="scroll", pos_right="20%"))  # 设置图例，允许滚动显示

# 渲染（生成）HTML文件
c.render("房价占比.html")
